package cn.dao.imp;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import cn.dao.UserDao;
import cn.entity.User;

public class UserDaoImp extends HibernateDaoSupport implements UserDao {

	/*
	 * 插入一個新的user数据
	 * 
	 * @see cn.dao.UserDao#insert(cn.entity.User)
	 */
	@Override
	public void insert(User user) {
		this.getHibernateTemplate().save(user);
	}

	/*
	 * 登陆的基本方法符合要求则返回true
	 * 
	 * @see cn.dao.UserDao#login(cn.entity.User)
	 */
	@Override
	public List login(User user) {
		//System.out.println("密码:"+user.getPassword()+"\t\t账号:"+user.getUsername());
		List list = this.getHibernateTemplate().find("from User where username=? and password=?",user.getUsername(), user.getPassword());
		return list;
	}

	/*
	 * 更新user
	 * 
	 * @see cn.dao.UserDao#update(cn.entity.User)
	 */
	@Override
	public void update(User user) {
		this.getHibernateTemplate().update(user);
	}

	/*
	 * 获取所有用户列表
	 */
	@Override
	public List<User> getAllUsers() {
		/*List<User> list = this.getHibernateTemplate().find("from User u where u.isDelete = 0");*/
		List<User> list = this.getHibernateTemplate().find("from User u");
		return list;
	}

	/*
	 * 按照用户ID查询用户信息
	 * 
	 * @see cn.dao.UserDao#getUserById(java.lang.Integer)
	 */
	@Override
	public User getUserById(Integer id) {
		return getHibernateTemplate().get(User.class, id);
	}
	
	@Override
	public List<User> getUserByUsername(String username) {
		return getHibernateTemplate().find("from User u where u.username = ?",username);
	}

	@Override
	public String getType(String type) {
		switch (type) {
		case "1":
			type="超级管理员";
			break;
		case "2":
			type="管理员";
			break;
		case "3":
			type="注册会员";
			break;
		case "超级管理员":
			type="超级管理员";
			break;
		case "管理员":
			type="管理员";
			break;
		case "注册会员":
			type="注册会员";
			break;

		default:
			type="未知用户类型";
			break;
		}
		return type;
	}

}
